from mcp.server.fastmcp import FastMCP

from city_05_server import CityInfoServer

# 初始化 MCP 服务器
mcp = FastMCP("CityServer")
# 初始化城市信息服务器
city_server = CityInfoServer()


# 获取天气信息的工具
@mcp.tool()
async def get_city_weather(city: str) -> str:
    """获取指定城市的天气信息。

    参数:
    city (str): 城市名称

    返回:
    str: 天气信息描述
    """
    city_weather_info = await city_server.get_city_weather(city)
    return city_weather_info


@mcp.tool()
# 获取所有城市列表
async def get_city_list():
    """获取所有城市列表。
    返回:
    str: 所有城市列表
    """
    city_list = await city_server.get_city_list()
    return city_list


@mcp.tool()
# 获取指定城市的信息
async def get_city_detail(city: str):
    """获取指定城市的信息。

    参数:
    city (str): 城市名称

    返回:
    str: 指定城市的信息
    """
    city_info = await city_server.get_city_detail(city)
    return city_info


# 主程序
if __name__ == "__main__":
    mcp.run(transport='stdio')
